﻿Namespace Save

    ''' <summary>
    ''' 保存定義作成インターフェイス
    ''' </summary>
    ''' <remarks></remarks>
    Public Interface ISaveDefinitionFactory

        ''' <summary>
        ''' 保存定義を作成します
        ''' </summary>
        ''' <param name="instance"></param>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Function CreateSaveDefinitions(instance As Object) As List(Of SaveDefinition)

        ''' <summary>
        ''' 指定された保存タイプの保存定義を強制的に作成します
        ''' </summary>
        ''' <param name="instance"></param>
        ''' <param name="saveType"></param>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Function CreateSaveDefinitions(instance As Object, saveType As SaveType) As List(Of SaveDefinition)

    End Interface

End Namespace
